<template>
  <nav class="app-topnav">
    <div class="container">
      <ul>
        <!-- template 不会生成真实的标签 -->
        <template v-if="profile.token">
          <li>
            <a href="javascript:;"
              ><i class="iconfont icon-user"></i>{{ profile.account }}</a
            >
          </li>
          <li><a @click="logout" href="javascript:;">退出登录</a></li>
        </template>
        <template v-else>
          <li><RouterLink to="/login">请先登录</RouterLink></li>
          <li><a href="javascript:;">免费注册</a></li>
        </template>
        <li><a href="javascript:;">我的订单</a></li>
        <li><a href="javascript:;">会员中心</a></li>
        <li><a href="javascript:;">帮助中心</a></li>
        <li><a href="javascript:;">关于我们</a></li>
        <li>
          <a href="javascript:;"><i class="iconfont icon-phone"></i>手机版</a>
        </li>
      </ul>
    </div>
  </nav>
</template>
<script>
import { useStore } from "vuex";
import { computed } from "vue";
import { useRouter } from "vue-router";
import Confirm from "erabbit-ui/packages/components/Confirm";
export default {
  name: "AppTopnav",
  // 1. 在组合API写法，拿到vuex的数据
  setup() {
    // 使用vuex的数据 this.$store ??? mapState() 选项API???
    // 通过 useStore 获取仓库
    const store = useStore();
    // 使用仓库中的一项数据，使用计算属性，在模块中js代码简短
    const profile = computed(() => {
      return store.state.user.profile;
    });

    // 退出登录
    const router = useRouter();
    const logout = async () => {
      await Confirm({ title: "温馨提示", text: "您确认退出小兔鲜儿吗？" });
      // 清除vuex的user数据
      store.commit("user/setProfile", {});
      // 清除购物车数据（登录：服务器购物车，未登录：本地的购物车）
      store.commit("cart/setList", []);
      // 跳转登录
      router.push("/login");
    };
    return { profile, logout };
  },
};
</script>
<style scoped lang="less">
.app-topnav {
  background: #333;
  ul {
    display: flex;
    height: 53px;
    justify-content: flex-end;
    align-items: center;
    li {
      a {
        padding: 0 15px;
        color: #cdcdcd;
        line-height: 1;
        display: inline-block;
        i {
          font-size: 14px;
          margin-right: 2px;
        }
        &:hover {
          color: var(--xtx-color);
        }
      }
      ~ li {
        a {
          border-left: 2px solid #666;
        }
      }
    }
  }
}
</style>
